The present invention relates to the field of data processing and more particularly to the distributed development of a software application which, once fully developed, is run in a data processing environment.
Software applications are becoming more and more complex in their internal structure. It has thus proven useful for the development of such applications to be carried out in a distributed fashion, meaning that multiple application developers can work on developing an application each from their own local workstation.
In such environments, it is necessary to store at least one repository of configuration data so that the distributed application developers can share this configuration data (also known as tool metadata) during the coordinated development of the complex application. For example, a message broker is a well known complex application which benefits from being developed according to the distributed development idea discussed above. In a message broker, the configuration data stored in a repository includes data for defining a sequence of message processing nodes which process input messages as they pass through the message broker.
In the current state of the art, such distributed development of software applications has been carried out using proprietary repositories for storing configuration data and proprietary protocols for allowing remote clients to access the proprietary repositories. This has worked well when all of the application developer clients are located within the same organization (e.g., the developers all work for the same company, even though they may be spread around the world). However, this technique does not provide the flexibility of allowing application developer clients from outside of the organization (e.g., temporary contractors, customers, employees working from home) to work transparently on developing the application alongside clients from within the organization. The proprietary nature of the repositories and/or protocols prevent this transparent cooperation.
It is highly desirable that open standards be employed in the use of repositories and communication protocols for the distributed development of complex applications so that the development can be performed via a plurality of different clients running on different data processing platforms (e.g., different operating systems, protocols and data formats) both inside and outside of a single organization.
One open standards-based distributed authoring system has been described in xe2x80x9cCollaborative Authoring on the Web: Introducing WebDAVxe2x80x9d, ASIS (American Society for Information Science) Bulletin October/November 1998, E. James Whitehead, Jr, pp 1-6. Whitehead describes an extension to the standard HTTP (hypertext transfer protocol) protocol which allows a plurality of client computers, each running a World Wide Web (WWW) 3browser application (e.g., Netscape Navigator), to perform collaborative authoring over the Internet of a set of common documents being held at a Web server. The extension is called WebDAV (Web Distributed Authoring and Versioning) and the clients are called WebDAV clients and the server is called a WebDAV server. The WebDAV server stores documents (files) for compliant software applications (clients) that use the WebDAV protocol to lock, copy, move, put, and get the document contents. No format for the content of the documents is assumed or required, though HTML documents constructed from ASCII text, GIFs, JPEGs, JavaScript, Java Applets, etc. are examples in this paper.
Because the Web is used, the WebDAV client tools can be located far away (geographically) from the site where the WebDAV server is located. Further, the clients can be situated on data processing platforms which are very different from (heterogeneous to) the platform of the WebDAV server. However, there is a great need in the art for not only the collaborate on document creation via the Web but also for the actual development of the software application to be carried out over the Web. Thus, according to the current state of the art, distributed development of a software application must be done via proprietary tools and not based on open standards, thus greatly limiting the use of such tools and, correspondingly, limiting their commercial value in the marketplace.
IBM Corporation has filed a patent application (patent application number 9927059.7) in the United Kingdom Patent Office (IBM docket no. UK9-99-091) filed 17 Nov. 1999 for a method of using a WebDAV client to access a WebDAV server, having steps carried out at the WebDAV client of: creating a WebDAV document containing a software development operation command to be carried out with respect to a computer software application which is currently being developed; and making a WebDAV PUT call to the WebDAV server, the PUT call including the created WebDAV document and a WebDAV identifier identifying the WebDAV server. Thus, a standard Web-based mechanism, the WebDAV protocol, is used in that invention for accessing tool metadata from a repository. Thus, neither the repository nor the protocols are proprietary and instead open standards are used. Accordingly, any WebDAV server can be used as a metadata repository, and thus the application development tools are not tied in to a proprietary solution. Further, that invention not only provides distributed application development over an Intranet but also over the Internet transparently so that multiple organizations can cooperate on distributed application development. Still further, since the WebDAV protocol is non-proprietary, many different tools can be used to manipulate the content of the tool metadata (even Web browsers support the WebDAV protocol).
However, the present inventors have further noted that even with the invention described and claimed in the UK patent application mentioned above, there is no mechanism provided to ensure that new tool metadata stored in new documents can always be located or xe2x80x9creferencedxe2x80x9d from another document. Such a mechanism would enforce xe2x80x9cReferential Integrity:xe2x80x9d if a new document is PUT into the WebDAV server, but the documents containing references to it are not, the document might be xe2x80x9corphanedxe2x80x9d. This means the WebDAV client may not be able to retrieve such a document because no references exist for it in the tool metadata which the client can GET from the server. This is a serious, potentially unrecoverable error, since the WebDAV client will not be able to correct problems by deleting or modifying the tool metadata, while the WebDAV server may perform an incorrect computation using the orphaned Document data as input.
According to a first aspect, the present invention provides a method of performing distributed development of a computer software application by using a WebDAV (Web Distributed Authoring and Versioning) client, which has a local memory store, to access a WebDAV server, comprising steps carried out at the WebDAV client of:
(a) creating a reference which points to a new first document which includes a software development operation command to be carried out with respect to a computer software application which is currently being developed, and adding this reference into the contents of a second WebDAV document at the WebDAV client;
(b) before storing the first or second document into the WebDAV server, determine a consistent set of documents to store, by searching the local memory store according to the following steps; in which a document which is in the local memory store but does not exist in the WebDAV server is said to be new, and in which a document which is in the local memory store and which does exist in the WebDAV server is said to be existing:
(b1) call the first document the current document;
(b2) compute the set of all existing documents which contain a reference to the current document and call it the existing set;
(b3) compute the set of all new documents which contain a reference to the current document and call it the new set;
(b4) compute the set of all new documents to which the current document contains a reference, union with the new set, and call the result the new set;
(b5) add the current document to the consistent set;
(b6) for each document in the new set and not in the consistent set, call it the current document and recursively repeat starting at step (b2);
(b7) for each document in the existing set and not in the consistent set, call it the current document and recursively repeat starting at step (b4); and
(c) verifying that all documents in the consistent set are either locked or non-existent in the WebDAV server; and
(c1) aborting the store operation if this condition is not met, or
(c2) storing all documents in the consistent set into the WebDAV server if this condition is met;
wherein an XML (Extensible Markup Language) data type definition (DTD) is used to enforce the client""s behavior in carrying out step (a).
According to a second aspect, the invention provides a computer program product for, when run on a computer system, carrying out the method steps of the first aspect.
Thus, with the present invention, when a WebDAV server is being used to store application development tool metadata as objects, referential integrity amongst the tool metadata objects is maintained by ensuring that new documents which are involved in a referential relationship are checked-in to the WebDAV server as a group or not checked-in at all. That is, all documents that point to a particular document (and the particular document itself if the particular document is new on the WebDAV client) are taken as a group, and if the entire group cannot be stored persistently to the WebDAV server then none of the documents of the group are stored persistently to the WebDAV server. This makes sure that the tool metadata is always reachable and likewise makes sure that references to new metadata included in existing documents can always be resolved.